home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / strlib.zip / MEMSET.C < prev    next >
Text File  |  1993-01-04  |  1KB  |  44 lines

  1.  
  2. /*  File   : memset.c
  3.     Author : Richard A. O'Keefe.
  4.     Updated: 25 May 1984
  5.     Defines: memset()
  6.  
  7.     memset(dst, chr, len)
  8.     fills the memory area dst[0..len-1] with len bytes all equal to chr.
  9.     The result is dst.  See also bfill(), which has no return value and
  10.     puts the last two arguments the other way around.
  11.  
  12.     Note: the VAX assembly code version can only handle 0 <= len < 2^16.
  13.     It is presented for your interest and amusement.
  14. */
  15.  
  16. #include "strings.h"
  17.  
  18. #if     VaxAsm
  19.  
  20. char *memset(dst, chr, len)
  21.     char *dst;
  22.     int chr;                    /* should be char */
  23.     int len;
  24.     {
  25.         asm("movc5 $0,*4(ap),8(ap),12(ap),*4(ap)");
  26.         return dst;
  27.     }
  28.  
  29. #else  ~VaxAsm
  30.  
  31. char *memset(dst, chr, len)
  32.     char *dst;
  33.     register int chr;           /* should be char */
  34.     register int len;
  35.     {
  36.         register char *d;
  37.  
  38.         for (d = dst; --len >= 0; *d++ = chr) ;
  39.         return dst;
  40.     }
  41.  
  42. #endif  VaxAsm
  43.  
  44.